package com.googlecode.quillen.application;

import com.googlecode.quillen.util.WorkQueueAbortedException;
import com.googlecode.quillen.util.ResultConsumer;
import com.googlecode.quillen.domain.ObjectStorageException;
import com.googlecode.quillen.domain.AttributeStorageException;
import com.googlecode.quillen.domain.FileInfo;

import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.util.Collection;
import java.text.ParseException;

/**
 * Created by IntelliJ IDEA.
 * User: greg
 * Date: Dec 2, 2008
 * Time: 9:11:09 PM
 */
public interface Backup
{
    void backup(String base, String path, Collection<String> snapshots, ResultConsumer<FileInfo> consumer)
            throws IOException, WorkQueueAbortedException, ObjectStorageException, NoSuchAlgorithmException, AttributeStorageException, InterruptedException, ParseException;

    void backup(String base, Collection<String> paths, Collection<String> snapshots, ResultConsumer<FileInfo> consumer)
            throws IOException, WorkQueueAbortedException, ObjectStorageException, NoSuchAlgorithmException, AttributeStorageException, InterruptedException, ParseException;
}
